home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Powervisor v1.10b disk2.adf / CancelDouble.c < prev    next >
C/C++ Source or Header  |  1991-09-10  |  983b  |  54 lines

  1. /* This little program removes all double lines from a sorted file */
  2. /* Author : Jorrit Tyberghein        Wed Jul  3 17:35:18 1991 */
  3.  
  4. #include <stdio.h>
  5.  
  6. main (int argc, char *argv[])
  7. {
  8.     FILE *in,*out;
  9.     char buf1[1024],buf2[1024];
  10.     char *curbuf,*prevbuf,*swap;
  11.  
  12.     if (argc != 3)
  13.         {
  14.             printf ("Usage : canceldouble <inputfile> <outputfile>\n");
  15.             exit (0);
  16.         }
  17.  
  18.     if (!(in = fopen (argv[1],"r")))
  19.         {
  20.             printf ("Error opening file %s for reading !\n",argv[1]);
  21.             exit (5);
  22.         }
  23.  
  24.     if (!(out = fopen (argv[2],"w")))
  25.         {
  26.             printf ("Error opening file %s for writing !\n",argv[2]);
  27.             fclose (in);
  28.             exit (5);
  29.         }
  30.  
  31.     curbuf = buf1;
  32.     prevbuf = buf2;
  33.  
  34.     prevbuf[0] = 0;
  35.  
  36.     while (fgets (curbuf,1023,in))
  37.         {
  38.             curbuf[1023] = 0;
  39.             if (strcmp (curbuf,prevbuf))
  40.                 {
  41.                     /* Previous line is different from current line */
  42.                     fputs (curbuf,out);
  43.  
  44.                     /* Swap the two buffers */
  45.                     swap = curbuf;
  46.                     curbuf = prevbuf;
  47.                     prevbuf = swap;
  48.                 }
  49.         }
  50.  
  51.     fclose (in);
  52.     fclose (out);
  53. }
  54.